home *** CD-ROM | disk | FTP | other *** search
-
- >>> Tips for Compiling IFF Examples <<<
- Carolyn Scheppner - CBM
-
- IFF examples, in most cases, are not self-contained programs.
- They need to be linked with various IFF modules which contain
- the IFF reader/writer/general routines that are used both directly
- and indirectly by the example. Information on which IFF modules
- are required by the EA examples in the SOURCE directory can be found
- in the lnk.files directory. The examples in the EXAMPLES directory
- contain linkage information in their opening comments, and .with
- files are supplied for those which must be linked with IFF modules.
- See the AmigaDos Developer's Manual "The Linker" chapter for more
- info on WITH files. Examples and modules are listed below.
-
- The IFF header (.h) files are also required when compiling the
- examples. The headers can be found in the INCLUDE/iff directory.
- I will assume that you have set up your C development system
- so that there is plenty of room on your source & headers work disk.
- Make an "iff" subdirectory in your "include" directory and copy
- the IFF headers there. Note for AZTEC C people: get rid of the
- comments inside the parentheses in the function definitions in
- packer.h.
-
- Make a directory (or directories) on your work disk for the IFF
- object (.o) modules. Since I work out of ram:, I keep the IFF
- modules in 3 directories (iffrobj, iffwobj, iffobj). Then I
- can easily copy just the ones I need to ram:. The object modules
- you need are listed below (IFF reader, writer, general modules).
- Note for AZTEC C people: These are Amiga C object modules. Copy
- the source (.c) for the modules to your C work disk and recompile
- them with AZTEC (without linking). The compiler.h header contains
- a switch (FDwAT) for compatibility with various compilers. You
- may have to change the value of this switch. In addition, you may
- find it necessary to link with your 32 bit library. I use Lattice
- but I would appreciate a list of any changes needed in the IFF
- source for compilation under Manx. I could include the list on
- the next release of this disk, or possibly incorporate the changes
- into the source.
-
- To compile an example, copy the example source (.c) file to
- your C work disk (or ram: if that's where you work). Compile
- the file WITHOUT linking it. You should now have a .o file for
- the example.
-
- (Note: Following linkage instructions are for Amiga C but should
- be helpful with other development systems as well)
-
- Use your editor to create a WITH file for the example. You
- can start with the appropriate file from modified.lnk.files.
- Add the proper paths to the filenames so that ALINK can find
- each of the files.
-
- For example, if Example.o was in df1:obj, the IFF .o modules
- were all in df1:iffobj, your startup and lib's were in df0:lib,
- and you wanted your executable placed in df1:executables, this
- would be your Example.with file:
-
- FROM df0:lib/LStartup.obj, df1:obj/Example.o, df1:iffobj/iffr.o,*
- df1:iffobj/ilbmr.o, df1:iffobj/unpacker.o
- TO df1:executables/Example
- LIBRARY df0:lib/LC.lib, df0:lib/Amiga.lib
-
- When I'm working with IFF, I keep my files and all of the IFF .o
- modules I need in ram:, and I'm cd'd there. I assign the label LIB:
- to the directory containing my startup code and linker libraries.
- This is my Display.with:
-
- FROM LIB:AStartup.obj,Display.o,myreadpict.o,iffmsgs.o*
- iffr.o,ilbmr.o,unpacker.o
- TO Display
- LIBRARY LIB:Amiga.lib, LIB:LC.lib
-
-
- Linking is easy once you've set up the .with file:
-
- Alink with Display.with
-
-
- -------------------------------------------------------------------------
- >>> List of IFF modules <<<
-
- IFF reader modules:
-
- iffr.o Lowest level reader rtns
- ilbmr.o Higher level ILBM reader rtns
- readpict.o Highest level ILBM reader
- unpacker.o Unpacking rtn
-
- IFF writer modules:
-
- iffw.o Lowest level writer rtns
- ilbmw.o Higher level ILBM writer rtns
- putpict.o Highest level ILBM writer
- packer.o Packing rtn
-
- General IFF modules:
-
- gio.o Fast IO rtns
- remalloc.o Memory allocation rtns
-
- --------------------------------------------------------------------------
-
-